home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / doc / recover.txt < prev    next >
Encoding:
Text File  |  2001-09-26  |  7.0 KB  |  162 lines

  1. *recover.txt*   For Vim version 6.0.  Last change: 2001 Sep 03
  2.  
  3.  
  4.           VIM REFERENCE MANUAL    by Bram Moolenaar
  5.  
  6.  
  7. Recovery after a crash                    *crash-recovery*
  8.  
  9. You have spent several hours typing in that text that has to be finished
  10. next morning, and then disaster strikes: Your computer crashes.
  11.  
  12.             DON'T PANIC!
  13.  
  14. You can recover most of your changes from the files that Vim uses to store
  15. the contents of the file.  Mostly you can recover your work with one command:
  16.     vim -r filename
  17.  
  18. 1. The swap file    |swap-file|
  19. 2. Recovery        |recovery|
  20.  
  21. ==============================================================================
  22. 1. The swap file                    *swap-file*
  23.  
  24. Vim stores the things you changed in a swap file.  Using the original file
  25. you started from plus the swap file you can mostly recover your work.
  26.  
  27. You can see the name of the current swap file being used with the command:
  28.  
  29.     :sw[apname]                    *:sw* *:swapname*
  30.  
  31. The name of the swap file is normally the same as the file you are editing,
  32. with the extension ".swp".
  33. - On Unix, a '.' is prepended to swap file names in the same directory as the
  34.   edited file.  This avoids that the swap file shows up in a directory
  35.   listing.
  36. - On MS-DOS machines and when the 'shortname' option is on, any '.' in the
  37.   original file name is replaced with '_'.
  38. - If this file already exists (e.g., when you are recovering from a crash) a
  39.   warning is given and another extension is used, ".swo", ".swn", etc.
  40. - An existing file will never be overwritten.
  41. - The swap file is deleted as soon as Vim stops editing the file.
  42.  
  43. Technical: The replacement of '.' with '_' is done to avoid problems with
  44.        MS-DOS compatible filesystems (e.g., crossdos, multidos).  If Vim
  45.        is able to detect that the file is on an MS-DOS-like filesystem, a
  46.        flag is set that has the same effect as the 'shortname' option.
  47.        This flag is reset when you start editing another file.
  48.                             *E326*
  49.        If the ".swp" file name already exists, the last character is
  50.        decremented until there is no file with that name or ".saa" is
  51.        reached.  In the last case, no swap file is created.
  52.  
  53. By setting the 'directory' option you can place the swap file in another place
  54. than where the edited file is.
  55. Advantages:
  56. - You will not pollute the directories with ".swp" files.
  57. - When the 'directory' is on another partition, reduce the risk of damaging
  58.   the file system where the file is (in a crash).
  59. Disadvantages:
  60. - You can get name collisions from files with the same name but in different
  61.   directories (although Vim tries to avoid that by comparing the path name).
  62.   This will result in bogus ATTENTION warning messages.
  63. - When you use your home directory, and somebody else tries to edit the same
  64.   file, he will not see your swap file and will not get the ATTENTION waring
  65.   message.
  66. On the Amiga you can also use a recoverable ram disk, but there is no 100%
  67. guarantee that this works.  Putting swap files in a normal ram disk (like RAM:
  68. on the Amiga) or in a place that is cleared when rebooting (like /tmp on Unix)
  69. makes no sense, you will lose the swap file in a crash.
  70.  
  71. If you want to put swap files in a fixed place, put a command resembling the
  72. following ones in your .vimrc:
  73.     :set dir=dh2:tmp    (for Amiga)
  74.     :set dir=~/tmp        (for Unix)
  75.     :set dir=c:\\tmp    (for MS-DOS and Win32)
  76. This is also very handy when editing files on floppy.  Of course you will have
  77. to create that "tmp" directory for this to work!
  78.  
  79. For read-only files, a swap file is not used.  Unless the file is big, causing
  80. the amount of memory used to be higher than given with 'maxmem' or
  81. 'maxmemtot'.  And when making a change to a read-only file, the swap file is
  82. created anyway.
  83.  
  84. The 'swapfile' option can be reset to avoid creating a swapfile.
  85.  
  86.  
  87. Detecting an existing swap file ~
  88.  
  89. You can find this in the user manual, section |11.3|.
  90.  
  91.  
  92. Updating the swapfile ~
  93.  
  94. The swap file is updated after typing 200 characters or when you have not
  95. typed anything for four seconds.  This only happens if the buffer was
  96. changed, not when you only moved around.  The reason why it is not kept up to
  97. date all the time is that this would slow down normal work too much.  You can
  98. change the 200 character count with the 'updatecount' option.  You can set
  99. the time with the 'updatetime' option.  The time is given in milliseconds.
  100. After writing to the swap file Vim syncs the file to disk.  This takes some
  101. time, especially on busy Unix systems.  If you don't want this you can set the
  102. 'swapsync' option to an empty string.  The risk of losing work becomes bigger
  103. though.  On some non-Unix systems (MS-DOS, Amiga) the swap file won't be
  104. written at all.
  105.  
  106. If the writing to the swap file is not wanted, it can be switched off by
  107. setting the 'updatecount' option to 0.  The same is done when starting Vim
  108. with the "-n" option.  Writing can be switched back on by setting the
  109. 'updatecount' option to non-zero.  Swap files will be created for all buffers
  110. when doing this.  But when setting 'updatecount' to zero, the existing swap
  111. files will not be removed, it will only affect files that will be opened
  112. after this.
  113.  
  114. If you want to make sure that your changes are in the swap file use this
  115. command:
  116.  
  117.                     *:pre* *:preserve* *E313* *E314*
  118. :pre[serve]        Write all text for all buffers into swap file.  The
  119.             original file is no longer needed for recovery.  {Vi:
  120.             emergency exit}
  121.  
  122. A Vim swap file can be recognized by the first six characters: "b0VIM ".
  123. After that comes the version number, e.g., "3.0".
  124.  
  125. ==============================================================================
  126. 2. Recovery                    *recovery* *E308* *E311*
  127.  
  128. Basic file recovery is explained in the user manual: |usr_11.txt|.
  129.  
  130. Another way to do recovery is to start Vim and use the ":recover" command.
  131. This is easy when you start Vim to edit a file and you get the "ATTENTION:
  132. Found a swap file ..." message.  In this case the single command ":recover"
  133. will do the work.  You can also give the name of the file or the swap file to
  134. the recover command:
  135.                     *:rec* *:recover* *E305* *E306* *E307*
  136. :rec[over] [file]    Try to recover [file] from the swap file.  If [file]
  137.             is not given use the file name for the current
  138.             buffer.  The current contents of the buffer are lost.
  139.             This command fails if the buffer was modified.
  140.  
  141. :rec[over]! [file]    Like ":recover", but any changes in the current
  142.             buffer are lost.
  143.  
  144.                             *E312* *E309* *E310*
  145. Vim has some intelligence about what to do if the swap file is corrupt in
  146. some way.  If Vim has doubt about what it found, it will give an error
  147. message and insert lines with "???" in the text.  If you see an error message
  148. while recovering, search in the file for "???" to see what is wrong.  You may
  149. want to cut and paste to get the text you need.
  150.  
  151. Be sure that the recovery was successful before overwriting the original
  152. file or deleting the swap file.  It is good practice to write the recovered
  153. file elsewhere and run 'diff' to find out if the changes you want are in the
  154. recovered file.
  155.  
  156. Once you are sure the recovery is ok delete the swap file.  Otherwise, you
  157. will continue to get warning messages that the ".swp" file already exists.
  158.  
  159. {Vi: recovers in another way and sends mail if there is something to recover}
  160.  
  161.  vim:tw=78:ts=8:ft=help:norl:
  162.